package com.zx.emaster;

import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;

import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;
import com.zzp.basepresenter.util.LoggerUtils;

import pub.devrel.easypermissions.AfterPermissionGranted;
import pub.devrel.easypermissions.EasyPermissions;

import static android.app.Activity.RESULT_OK;

public class AppUtil {
    private static AppUtil instance;

    public static AppUtil getInstance() {
        if (instance == null) {
            synchronized (AppUtil.class) {
                if (instance == null) {
                    instance = new AppUtil();
                }
            }
        }
        return instance;
    }


    /**
     * 检测拍摄权限
     */
//    @AfterPermissionGranted(0X01)
//    public void checkScanPermissions(Activity context) {
//        String[] perms = {Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE};
//        if (EasyPermissions.hasPermissions(context, perms)) {//有权限
//            //跳转的默认扫码界面
//            Intent intent = new Intent(context, CaptureActivity.class);
//            /*ZxingConfig是配置类
//             *可以设置是否显示底部布局，闪光灯，相册，
//             * 是否播放提示音  震动
//             * 设置扫描框颜色等
//             * 也可以不传这个参数
//             * */
//            ZxingConfig config = new ZxingConfig();
//            config.setPlayBeep(true);//是否播放扫描声音 默认为true
//            config.setShake(true);//是否震动  默认为true
//            config.setDecodeBarCode(true);//是否扫描条形码 默认为true
//            config.setReactColor(R.color.colorAccent);//设置扫描框四个角的颜色 默认为白色
//            config.setFrameLineColor(R.color.colorAccent);//设置扫描框边框颜色 默认无色
//            config.setScanLineColor(R.color.colorAccent);//设置扫描线的颜色 默认白色
//            config.setFullScreenScan(false);//是否全屏扫描  默认为true  设为false则只会在扫描框中扫描
//            intent.putExtra(Constant.INTENT_ZXING_CONFIG, config);
//            context.startActivityForResult(intent, 123);
//        } else {
//            // Do not have permissions, request them now
//            EasyPermissions.requestPermissions(context, context.getString(R.string.permission_camera),
//                    0X01, perms);
//        }
//    }


    /**
     * 检测拍摄权限
     */
    @AfterPermissionGranted(0X01)
    public void checkScanPermissions(Activity context) {
        LoggerUtils.getInstance().i("跳转");
        String[] perms = {Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE};
        if (EasyPermissions.hasPermissions(context, perms)) {//有权限
            Intent intent = new Intent(context, CaptureActivity.class);
            context.startActivityForResult(intent, 123);
        } else {
            // Do not have permissions, request them now
            EasyPermissions.requestPermissions(context, context.getString(R.string.permission_camera),
                    0X01, perms);
        }
    }


    /*
     * 获取扫码结果
     * */
    public String getScanResult(int requestCode, int resultCode, Intent data) {
        //接收扫码结果
//        if (resultCode == RESULT_OK && requestCode == ScanCodeConfig.QUESTCODE && data != null) {
//            Bundle extras = data.getExtras();
//            if (extras != null) {
//                String code = extras.getString(ScanCodeConfig.CODE_KEY);
//                LoggerUtils.getInstance().i("scan code result\t\t" + code);
//                if (!TextUtils.isEmpty(code)) {//获取到扫码结果
//                    return code;
//                }
//            }
//        }

//        if (requestCode == 123) {
//            if (data != null) {
//                String result = data.getStringExtra(Constant.CODED_CONTENT);
//                LoggerUtils.getInstance().i("scan code result\t\t" + result);
//                if (!TextUtils.isEmpty(result)) {//获取到扫码结果
//                    return result;
//                }
//            }
//        }
        // 扫描二维码/条码回传
        if (requestCode == 123 && resultCode == RESULT_OK) {
            if (data != null) {
                //返回的文本内容
                Bundle extras = data.getExtras();
                String result = extras.getString(CodeUtils.RESULT_STRING);
                LoggerUtils.getInstance().i("扫码结果\t\t" + result);
                if (!TextUtils.isEmpty(result)) {//获取到扫码结果
                    return result;
                }
            }
        }
        return null;
    }
}
